/**
 * 
 */
package com.rhf.core.db.interfaces;

import java.sql.ResultSet;
import java.util.List;

import com.rhf.core.dto.UtilisateurVO;

/**
 * @author fabiensaulnier
 * 
 */
public interface Utilisateur {

	/**
	 * R�cup�re un utilisateur � partir de son identifiant
	 * 
	 * @param utilisateurId
	 * @return
	 * @throws Exception
	 */
	public UtilisateurVO recupererUtilisateur(int utilisateurId) throws Exception;

	/**
	 * R�cup�re un utilisateur � partir de son login et son motDePasse
	 * 
	 * @param login
	 * @param motDePasse
	 * @return UilitsateurVO
	 * @throws Exception
	 */
	public UtilisateurVO recupererUtilisateur(String login, String motDePasse) throws Exception;

	/**
	 * R�cup�re la liste des utilsiateurs
	 * 
	 * @return
	 * @throws Exception
	 */
	public List<UtilisateurVO> recupererListeUtilisateur() throws Exception;

	/**
	 * AJouter un utilisateur
	 * 
	 * @param utilisateurVO
	 * @return
	 * @throws Exception
	 */
	public int ajouterUtilisateur(UtilisateurVO utilisateurVO) throws Exception;

	/**
	 * Modifier un utilisateur
	 * 
	 * @param utilisateurVO
	 * @return
	 * @throws Exception
	 */
	public int modifierUtilisateur(UtilisateurVO utilisateurVO) throws Exception;

	/**
	 * Supprimer un utilisateur � partir de son identifiant
	 * 
	 * @param utilisateurId
	 * @return
	 * @throws Exception
	 */
	public int supprimerUtilisateur(int utilisateurId) throws Exception;

	/**
	 * Constucteur du r�sultat de la requ�te
	 * 
	 * @param rs
	 * @return Saison constucteur rs
	 * @throws Exception
	 */
	public UtilisateurVO contructeur(ResultSet rs) throws Exception;

}
